package persistencia.busqueda;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import negocio.busqueda.BusquedaYSeleccion;
import negocio.cliente.Cliente;

import persistencia.DACBase;
import persistencia.SingletonDACBase;
import persistencia.cliente.DACConocimientoIdiomas;

public class DACBusquedaYSeleccion extends DACBase {

	
	private CallableStatement clstm;
	private ResultSet rs;	
	
	public DACBusquedaYSeleccion(DACBase dacBase) {
		super(dacBase);
		// TODO Auto-generated constructor stub
	}

	public void actuaizarBusquedaYSeleccion(BusquedaYSeleccion bys, int idSolicitud) {
		try {
			clstm = getConn().prepareCall("{? = call save_busquedayseleccion(?, ?, ?)}");			
			//			 	consulto el ultimo ID del perfil que cargue
			clstm.registerOutParameter(1,java.sql.Types.INTEGER);
			
			clstm.setInt("idbusquedayseleccion", bys.getIdBuqsquedaYSeleccion());			
			clstm.setString("estado", bys.getEstado());
			clstm.setInt("idsolicitudrrhh",idSolicitud);	
			clstm.execute();			
					
			if (bys.getIdBuqsquedaYSeleccion() == 0) {
				bys.setIdBuqsquedaYSeleccion(clstm.getInt(1));
			}		
			
			//insertamos  los candidatos
			
			DACCandidato dacCandidato = new DACCandidato(SingletonDACBase.tomarDACBase());
			dacCandidato.actualizarCandidatos(bys);
			
			clstm.close();
	        clstm = null;
	         
	         	            
	        
		}
		
		catch (SQLException ex) {
		    // handle any errors			
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo actualizarBYS_DacBYS");
		}		
	
		
	}
	
	public BusquedaYSeleccion consultarBusquedaYSeleccion(int idSolicitud) {
		
		BusquedaYSeleccion bys = null;
		try{
			clstm = getConn().prepareCall("{call busquedayseleccionConsultar(?)}"); 
			clstm.setInt("idsolicitud", idSolicitud);
			clstm.execute();
			rs = clstm.getResultSet();			
			if (rs.next()) {
				System.out.println("\n entra al dac bys" + rs.getInt("idbusquedayseleccion"));
				bys = new BusquedaYSeleccion();
				bys.setIdBuqsquedaYSeleccion(rs.getInt("idbusquedayseleccion"));
				bys.setEstado(rs.getString("estado"));
				
				DACCandidato dacCandidato = new DACCandidato(SingletonDACBase.tomarDACBase());				
				bys.setCandidatosSelecc(dacCandidato.consultarCandidatos(bys.getIdBuqsquedaYSeleccion()));
			}
			
			rs.close();
			rs = null;
			clstm.close();
            clstm = null;
            
           
		}
		catch (SQLException ex) {
		    // handle any errors
		    System.out.println("SQLException: " + ex.getMessage());
		    System.out.println("SQLState: " + ex.getSQLState());
		    System.out.println("VendorError: " + ex.getErrorCode());
		    System.out.println("Error en metodo consultarBYS()_DacBYSe");
			}
		
		return bys;
	}	

}
